// 给定两个字符串形式的非负整数 num1 和 num2 ，计算它们的和。
//
// 例如：
//
// "111" + ”2222“ = ”2333“
//
// 注意：
// num1 和 num2 的长度都小于 5100
// num1 和 num2 都只包含数字 0-9
// num1 和 num2 都不包含任何前导零
// 你不能使用任何內建 BigInteger 库， 也不能直接将输入的字符串转换为整数形式

function sum(str1,str2){
    let a = str1.split("");
    let b = str2.split("");
    let temp = 0;
    let res = [];
    if(a.length >= 5100 && b.length >= 5100) throw Error("长度不得大于5100");
    if(!/^[1-9][0-9]+/g.test(str1) && !/^[1-9][0-9]+/g.test(str1)) throw Error("num1 和 num2 都只包含数字 0-9");
    while (a.length || b.length){
        let cVal = ~~a.pop() + ~~b.pop() + temp;
        temp = ~~(cVal / 10);
        let result = cVal % 10;
        res.unshift(result);
    }
    return res.join("");
}

var addStrs = (str1,str2) =>{
    let a = str1.length,b = str2.length,result = '',temp = 0;
    while(a||b){
        a ? temp += +str1[--a] : '';
        b ? temp += +str2[--b] : '';
        result = temp % 10 + result;
        if(temp > 9) temp = 1;
        else temp = 0;
    }
    if(temp) result = 1 + result;
    return result;
};

var str1 = "123499999";
var str2 = "234515651";
console.log(sum(str1,str2));
console.log(addStrs(str1,str2));

console.log('19' % 10);
// console.log(/^[1-9][0-9]+/g.test("154516"));